home *** CD-ROM | disk | FTP | other *** search
/ Aminet 41 / Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso / Aminet / dev / c / GSys.lha / gsys / gsystem / GRequestFile.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-02-26  |  2.0 KB  |  102 lines

  1.  
  2. #ifndef GREQUESTFILEMET
  3. #define GREQUESTFILEMET
  4.  
  5. GRequestFile::GRequestFile(GTagItem *TagList);
  6. {
  7.     memset((void *)this, 0, sizeof (this) );
  8.     if (Parent)
  9.     {
  10.         Parent->InsertGRequestFile(this);
  11.  
  12.         FileRequester = NULL;
  13.         NextGRequestFile = NULL;
  14.         Status FALSE;
  15.         FileName[0] = 0;
  16.  
  17.         GScreen = NULL;
  18.         TitleText = "Please select file(s)";
  19.         InitPattern = NULL;
  20.         InitPath = NULL;
  21.         PatternShow = TRUE;
  22.         RejectPattern = NULL;
  23.         AcceptPattern = NULL;
  24.         SaveMode = FALSE;
  25.         MultiFiles FALSE;
  26.         OnlyDrawers FALSE;
  27.  
  28.         while (TagList->TagItem)
  29.         {
  30.             switch (TagList->TagItem)
  31.             {
  32.                 case RF_TITLETEXT:
  33.                     TitleText = TagList->TagData;
  34.                 break;
  35.                 case RF_GSCREEN:
  36.                     GScreen = TagList->TagData;
  37.                 break;
  38.                 case RF_PATTERNSHOW:
  39.                     PatternShow = TagList->TagData;
  40.                 break;    
  41.  
  42.                 case RF_REJECTPATTERN:
  43.                     RejectPattern = TagList->TagData;
  44.                 break;
  45.                 case RF_ACCEPTPATTERN:
  46.                     AcceptPattern = TagList->TagData;
  47.                 break;
  48.                 case RF_INITPATTERN:
  49.                     InitPattern = TagList->TagData;
  50.                 break;
  51.  
  52.                 case RF_INITPATH:
  53.                     InitPath = TagList->TagData;
  54.                 break;
  55.                 case RF_SAVEMODE:
  56.                     SaveMode = TagList->TagData;
  57.                 break;
  58.                 case RF_MULTIFILES:
  59.                     MultiFiles = TagList->TagData;
  60.                 break;
  61.                 case RF_ONLYDRAWERS:
  62.                     OnlyDrawers = TagList->TagData;
  63.                 break;
  64.             }
  65.             TagList++;
  66.         }
  67. #ifdef GAMIGA
  68.         FileRequest = (struct FileRequester *)AllocAslRequest(ASL_FileRequest, NULL);
  69. #endif
  70.     }
  71. }
  72.  
  73.         AslRequestTags(LoadFileReq,
  74.         ASLFR_TitleText, "Select File to load",
  75.         ASLFR_Screen, MainScreen,
  76.         ASLFR_Flags1, FRF_DOPATTERNS,
  77.         ASLFR_InitialDrawer, "asm:objects/lw",
  78.         ASLFR_InitialPattern, NULL,
  79.         TAG_DONE);
  80.  
  81.  
  82. #ifdef GAMIGA
  83. STRPTR GetFileName(struct FileRequester *FileReq)
  84. {
  85.     STRPTR Dest = CompleteFileName;
  86.     Dest = CopyString(FileReq->fr_Drawer, Dest);
  87.     if ( Dest[-2] != 0x2f )
  88.     {
  89.         if ( Dest[-2] != 0x3a )
  90.         {
  91.             if ( Dest[-2] ) Dest[-1] = 0x2f;
  92.             else return NULL;
  93.         }
  94.         else Dest-=1;
  95.     }
  96.     else Dest-=1;
  97.     CopyString(FileReq->fr_File, Dest);
  98.     return CompleteFileName;
  99. }
  100. #endif
  101.  
  102. #endif /* GREQUESTFILEMET */